package com.ruoyi.common.log.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 物流记录表（日志）
 * @TableName src_logistics
 */
@TableName(value ="src_logistics")
@Data
public class Logistics implements Serializable {
    /**
     *  物流运输记录的唯一标识符
     */
    @TableId(type = IdType.AUTO)
    private Integer transportId;

    /**
     * 运输的产品ID
     */
    private Integer cropId;

    /**
     * 加工厂id
     */
    private Integer processId;

    /**
     * 仓库id
     */
    private Integer cargoId;

    /**
     * 零售商id
     */
    private String retailId;

    /**
     * 工厂Id
     */
    private Integer factoryId;

    /**
     * 运输开始日期和时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date transportDate;

    /**
     * 预计送达日期和时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date expectedDeliveryDate;

    /**
     * 实际送达日期和时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date actualDeliveryDate;

    /**
     * 运输起始地点（如原材料仓库或加工厂）
     */
    private String fromLocation;

    /**
     * 运输目的地点（如加工厂、零售店或顾客地址）
     */
    private String toLocation;

    /**
     * 发货人ID
     */
    private Integer senderId;

    /**
     * 运输方式（如陆运、空运、海运等）
     */
    private String transportMethod;

    /**
     * 承运人或运输公司ID
     */
    private Integer carrierId;

    /**
     * 运输的产品数量
     */
    private Integer trackingNumber;

    /**
     * 运输跟踪号码
     */
    private String quantityShipped;

    /**
     * 运输数量(单位，如千克、吨等)
     */
    private String unit;

    /**
     * 运输状态（如:未运输、运输中、运输完成等）
     */
    private String status;

    /**
     * 运输过程中的特别说明或备注
     */
    private String notes;

    /**
     * 条码
     */
    private String barCode;

    /**
     * 货物图片
     */
    private String picture;

    /**
     * 司机
     */
    private String drivers;

    /**
     * 是否签收 0 代签收  1 已签收 2 拒签
     */
    private String qstatus;

    @TableField(exist = false)
    private String cropName;
    @TableField(exist = false)
    private String cargoName;
    @TableField(exist = false)
    private String retailName;
    @TableField(exist = false)
    private String processName;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}